Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Node / ReticulumProjects / MeshChatX.git / files / meshchatx / src / backend / plugin_integrity.py

Displaying Raw • Download


meshchatx/src/backend/plugin_integrity.py a96697b9a554c7ae068fb1b4a2bd19f34f918ce3 (a96697b9) Text, 748 B

T8b949e# SPDX-License-Identifier: 0BSD

Tff7b72from T7ee787__future__ Tff7b72import Te6edf3annotations

Tff7b72import T7ee787hashlib

Tff7b72from T7ee787meshchatxT7ee787.T7ee787srcT7ee787.T7ee787backendT7ee787.T7ee787plugin_signature Tff7b72import Te6edf3canonical_dir_payload

Te6edf3INTEGRITY_TAMPER_MESSAGE Tff7b72= Ta5d6ff"Ta5d6ffplugin files were modified outside MeshChatXTa5d6ff"


Tff7b72def Td2a8ffcompute_dir_integrity_hashTb4b4b4(Te6edf3dir_pathTb4b4b4: Tffa657strTb4b4b4) Tff7b72-Tff7b72> Tffa657strTb4b4b4:
Te6edf3payload Tff7b72= Te6edf3canonical_dir_payloadTb4b4b4(Te6edf3dir_pathTb4b4b4)
Tff7b72return Te6edf3hashlibTff7b72.Td2a8ffsha256Tb4b4b4(Te6edf3payloadTb4b4b4)Tff7b72.Td2a8ffhexdigestTb4b4b4(Tb4b4b4)


Tff7b72def Td2a8ffverify_dir_integrityTb4b4b4(Te6edf3dir_pathTb4b4b4: Tffa657strTb4b4b4, Te6edf3expected_hashTb4b4b4: Tffa657strTb4b4b4) Tff7b72-Tff7b72> Tffa657tupleTb4b4b4[Tffa657boolTb4b4b4, Tffa657strTb4b4b4]Tb4b4b4:
Tff7b72if Tff7b72not Te6edf3expected_hashTb4b4b4:
Tff7b72return Tff7b72TrueTb4b4b4, Ta5d6ff"Ta5d6ff"
Te6edf3current Tff7b72= Te6edf3compute_dir_integrity_hashTb4b4b4(Te6edf3dir_pathTb4b4b4)
Tff7b72if Te6edf3current Tff7b72!= Te6edf3expected_hashTb4b4b4:
Tff7b72return Tff7b72FalseTb4b4b4, Te6edf3current
Tff7b72return Tff7b72TrueTb4b4b4, Te6edf3current


Tff7b72def Td2a8ffintegrity_tamper_errorTb4b4b4(Tb4b4b4) Tff7b72-Tff7b72> Tf85149ValueErrorTb4b4b4:
Tff7b72return Tf85149ValueErrorTb4b4b4(Te6edf3INTEGRITY_TAMPER_MESSAGETb4b4b4)


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────